package com.megalith.service;

import com.megalith.dto.CandidateProcessDTO;
import com.megalith.dto.CandidateProcessInstanceBaseDTO;
import com.megalith.dto.CandidateProcessInstanceDTO;
import com.megalith.vo.Result;

/**
 * @Description TODO
 * @Author lfp
 * @Date 2022/7/16
 * @Version 1.0
 */
public interface CandidateTaskService {
    /**
    *@Description 启动候选人流程实例
    *@Author lfp
    *@Date 2022/7/16
    *@param candidateProcessDTO
    *@Return 
    */
    Result startCandidateProcess(CandidateProcessDTO candidateProcessDTO);

    /**
    *@Description 处理个人任务
    *@Author lfp
    *@Date 2022/7/16
    *@param processInstanceDTO
    *@Return
    */
    Result completePersonalProcess(CandidateProcessInstanceDTO processInstanceDTO);

    /**
    *@Description 认领任务
    *@Author lfp
    *@Date 2022/7/16
    *@param processInstanceBaseDTO
    *@Return
    */
    Result claimCandidateTask(CandidateProcessInstanceBaseDTO processInstanceBaseDTO);

    /**
    *@Description 归还任务
    *@Author lfp
    *@Date 2022/7/16
    *@param processInstanceBaseDTO
    *@Return
    */
    Result unclaimCandidateTask(CandidateProcessInstanceBaseDTO processInstanceBaseDTO);
}
